flowbox: Update to using GdkEvent API
authorCarlos Garnacho <carlosg@gnome.org>
Fri, 25 Aug 2017 14:46:15 +0000 (16:46 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Tue, 19 Sep 2017 16:39:02 +0000 (18:39 +0200)
gtk/gtkflowbox.c

index d0c77232262cfed84ee85616447d62f26f93004b..815428dc063783a9675c3c0f13ad707975d69453 100644 (file)
@@ -2617,11 +2617,14 @@ gtk_flow_box_enter_notify_event (GtkWidget        *widget,
 {
   GtkFlowBox *box = GTK_FLOW_BOX (widget);
   GtkFlowBoxChild *child;
+  gdouble x, y;
 
-  if (event->window != gtk_widget_get_window (GTK_WIDGET (box)))
-    return FALSE;
+  if ((gdk_event_get_window ((GdkEvent *) event) !=
+       gtk_widget_get_window (GTK_WIDGET (box))) ||
+      gdk_event_get_coords ((GdkEvent *) event, &x, &y))
+    return GDK_EVENT_PROPAGATE;
 
-  child = gtk_flow_box_get_child_at_pos (box, event->x, event->y);
+  child = gtk_flow_box_get_child_at_pos (box, x, y);
   gtk_flow_box_update_active (box, child);
 
   return FALSE;
@@ -2633,14 +2636,16 @@ gtk_flow_box_leave_notify_event (GtkWidget        *widget,
 {
   GtkFlowBox *box = GTK_FLOW_BOX (widget);
   GtkFlowBoxChild *child = NULL;
+  gdouble x, y;
 
-  if (event->window != gtk_widget_get_window (GTK_WIDGET (box)))
+  if (gdk_event_get_window ((GdkEvent *) event) !=
+      gtk_widget_get_window (GTK_WIDGET (box)))
     return FALSE;
 
   if (event->detail != GDK_NOTIFY_INFERIOR)
     child = NULL;
-  else
-    child = gtk_flow_box_get_child_at_pos (box, event->x, event->y);
+  else if (gdk_event_get_coords ((GdkEvent *) event, &x, &y))
+    child = gtk_flow_box_get_child_at_pos (box, x, y);
 
   gtk_flow_box_update_active (box, child);
 
@@ -2704,8 +2709,12 @@ gtk_flow_box_motion_notify_event (GtkWidget      *widget,
 {
   GtkFlowBox *box = GTK_FLOW_BOX (widget);
   GtkFlowBoxChild *child;
+  gdouble x, y;
 
-  child = gtk_flow_box_get_child_at_pos (box, event->x, event->y);
+  if (!gdk_event_get_coords ((GdkEvent *) event, &x, &y))
+    return GDK_EVENT_PROPAGATE;
+
+  child = gtk_flow_box_get_child_at_pos (box, x, y);
   gtk_flow_box_update_active (box, child);
 
   return GTK_WIDGET_CLASS (gtk_flow_box_parent_class)->motion_notify_event (widget, event);
@@ -2865,10 +2874,12 @@ gtk_flow_box_key_press_event (GtkWidget   *widget,
 {
   GtkFlowBox *box = GTK_FLOW_BOX (widget);
   GtkFlowBoxPrivate *priv = BOX_PRIV (box);
+  guint keyval;
 
   if (priv->rubberband_select)
     {
-      if (event->keyval == GDK_KEY_Escape)
+      if (gdk_event_get_keyval ((GdkEvent *) event, &keyval) &&
+          keyval == GDK_KEY_Escape)
         {
           gtk_flow_box_stop_rubberband (box);
           return TRUE;